package listener;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * 在线人数统计
 * 当有新的session对象创建时 人数+1
 * 当有新的session对象销毁时 人数-1
 *
 */

@WebListener
public class ListenerPerson implements HttpSessionListener {
    //定义在线人数
    private Integer onlineNumber = 0;

    //当有新的session对象创建时 人数+1
    @Override
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
        System.out.println("session创建了");
        //人数+1
        onlineNumber++;
        //将人数设置到作用域中
        //httpSessionEvent.getSession().setAttribute("onlineNumber",onlineNumber);
        //将人数设置到getServletContext()作用域中
        httpSessionEvent.getSession().getServletContext().setAttribute("onlineNumber",onlineNumber);
    }

    //当有新的session对象销毁时 人数-1
    @Override
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
        System.out.println("session销毁了");
        //人数-1
        onlineNumber--;
        //将人数设置到作用域中
        //httpSessionEvent.getSession().setAttribute("onlineNumber",onlineNumber);
        //将人数设置到getServletContext()作用域中
        httpSessionEvent.getSession().getServletContext().setAttribute("onlineNumber",onlineNumber);

    }
}
